1. Field of the Invention
This invention relates to the field of computer processing and, more particularly, to efficiently performing simultaneous access of files in clustered file system.
2. Description of the Related Art
A company may utilize a high availability of services provided by clusters of nodes coupled via a network. Generally speaking, clustering allows software applications to run on several parallel servers, also referred to as cluster nodes. A workload is distributed across different servers. A redundant node or other second node in the cluster provides service when any of at least the following events occur: a first node fails, a first node is chosen to move for load balancing purposes, or a first node is temporarily out of service for upgrades or maintenance service. In addition, migration may occur at a finer granularity level than at a node level, such as at a level of virtual machines (VMs) within the nodes. Clustering may be used in scalable enterprise applications and scientific research institutions. Adding more nodes to the cluster may increase computing performance.
A cluster file system is not a single server with a set of clients, but rather a cluster of servers, as described above, that work together to provide high performance service to clients. The cluster is transparent to the clients. A clustered file system may be asymmetric, or metadata management does not occur on the clients, and parallel, or supports concurrent read and write operations.
A distributed lock manager provides distributed software applications with a means to synchronize their accesses to shared resources. Each node in a cluster may have a lock manager, which is part of the distributed lock manager for the entire cluster. A lock manager on a given node may include software code called a proxy that acts as an intermediary, or an authorized agent, for memory access requests. The memory access requests may come from both the file system on the given node and from other nodes in the cluster seeking data resources from the given node. Clustered file systems utilize these lock managers, in which the servers in a cluster can use each other's storage via a unified file system. Cache coherency between participating computers is provided. There may be several lock modes that can be granted by the proxy. These lock modes determine a level of exclusivity of access to the resource. The distributed lock manager may be used not only for file locking but also for coordination of all disk access. For example, a process or a corresponding thread executes read and write operations. In response to these operations, the file system on a same node as the executing thread issues associated lock requests. These lock requests are sent to a proxy within a lock manager on the same node. Communication over a network with lock managers on other nodes may be performed before granting the lock request corresponding to the read and write operations. The network communication ensures the read and write operations are performed in both an atomic and an in-order manner. If the network communication occurs frequently and a high number of messages are sent over the network, then computing performance is reduced.
In view of the above, methods and mechanisms for efficiently performing simultaneous access of files in clustered file system are desired.